home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11.lha / libX11 / xmui.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-22  |  20.0 KB  |  926 lines

  1. /* Copyright (c) 1996 by Terje Pedersen.  All Rights Reserved   */
  2. /*                                                              */
  3. /* By using this code you will agree to these terms:            */
  4. /*                                                              */
  5. /* 1. You may not use this code for profit in any way or form   */
  6. /*    unless an agreement with the author has been reached.     */
  7. /*                                                              */
  8. /* 2. The author is not responsible for any damages caused by   */
  9. /*    the use of this code.                                     */
  10. /*                                                              */
  11. /* 3. All modifications are to be released to the public.       */
  12. /*                                                              */
  13. /* Thats it! Have fun!                                          */
  14. /* TP                                                           */
  15. /*                                                              */
  16.  
  17. /***
  18.    NAME
  19.      Xmui
  20.    PURPOSE
  21.      
  22.    NOTES
  23.      
  24.    HISTORY
  25.      Terje Pedersen - Jan 10, 1996: Created.
  26. ***/
  27.  
  28.  
  29. #include <intuition/intuition.h>
  30. #include <clib/intuition_protos.h>
  31. /*
  32. #include <intuition/intuitionbase.h>
  33.  
  34. #include <graphics/gfx.h>
  35. #include <graphics/gfxbase.h>
  36. #include <graphics/gfxmacros.h>
  37. #include <graphics/displayinfo.h>
  38. #include <devices/timer.h>
  39. */
  40.  
  41. #include <proto/intuition.h>
  42. #include <proto/graphics.h>
  43. #include <proto/gadtools.h>
  44. /*
  45. #include <proto/layers.h>
  46. */
  47. #include <assert.h>
  48. /*
  49. #include <dos.h>
  50. #include <signal.h>
  51. #include <stdlib.h>
  52. #include <time.h>
  53. */
  54. #include <stdio.h>
  55.  
  56. #include "libX11.h"
  57.  
  58. #define XLIB_ILLEGAL_ACCESS 1
  59.  
  60. #include <X11/X.h>
  61. #include <X11/Xlib.h>
  62.  
  63. #include <X11/Xutil.h>
  64. #include <X11/Intrinsic.h>
  65. #include <X11/IntrinsicP.h>
  66. #include <X11/CoreP.h>
  67.  
  68. #include <Xm/Xm.h>
  69. #include <Xm/Protocols.h>
  70. #include <Xm/Command.h>
  71. #include <Xm/MessageB.h>
  72. #include <Xm/FileSB.h>
  73. #include <Xm/Form.h>
  74. #include <Xm/Frame.h>
  75. #include <Xm/RowColumn.h>
  76. #include <Xm/Label.h>
  77. #include <Xm/Separator.h>
  78. #include <Xm/PushB.h>
  79. #include <Xm/Text.h>
  80. #include <Xm/Scale.h>
  81. #include <Xm/SelectioB.h>
  82. #include <Xm/TextF.h>
  83. #include <Xm/SelectioB.h>
  84. #include <Xm/CascadeB.h>
  85. #include <Xm/DrawingA.h>
  86. #include <Xm/ScrollBar.h>
  87.  
  88. #include "amigax_proto.h"
  89. #include "amiga_x.h"
  90.  
  91. #define XMSTRINGDEFINES
  92.  
  93. #ifdef XMUIAPP
  94. #include <libraries/mui.h>
  95. #include <proto/muimaster.h>
  96.  
  97.  
  98. extern Object *X11menustrip;
  99.  
  100. ListNode_t *pWidgetList,*pStringList;
  101.  
  102. #ifndef MAKE_ID
  103. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  104. #endif
  105.  
  106. BOOL arg_findarg(ArgList args,int nArgs, char *zArgName, int nArgValue){
  107.   int i;
  108.   for( i=0; i<nArgs; i++ )
  109.     {
  110.       if(!strcmp(args[i].name,zArgName))
  111.     {
  112.       if(args[i].value==nArgValue) return TRUE;
  113.       else return FALSE;
  114.     }
  115.     }
  116.   return FALSE;
  117. }
  118.  
  119. void X11mui_init(void){
  120.   pWidgetList=List_MakeNull();
  121.   pStringList=List_MakeNull();
  122. }
  123.  
  124. void X11mui_cleanup(void){
  125.   List_FreeList(pWidgetList);
  126.   List_FreeList(pStringList);
  127. }
  128.  
  129. Widget MakeWidget(Widget parent,Object *self){
  130.   int size=sizeof(struct _WidgetRec);
  131.   Widget w=(Widget)calloc(size,1);
  132.   if(!w) return 0;
  133.   List_AddEntry(pWidgetList,(void*)w);
  134.   if(parent)
  135.     memcpy(w,parent,size); /* inherit all parent attributes */
  136.   w->core.parent=parent;
  137.   w->core.self=(struct _CorePart *)X11NewMUI(self);
  138.   return w;
  139. }
  140.  
  141. Widget XmCreateRowColumn (parent, name, arglist, argcount)
  142.      Widget    parent;
  143.      String    name;
  144.      ArgList   arglist;
  145.      Cardinal  argcount;
  146. {/*       File 'xmgr.o'*/
  147.   Widget w;
  148.   Object *g;
  149. #ifdef DEBUGXEMUL
  150.   printf("XmCreateRowColumn\n");
  151. #endif
  152.  
  153.   assert(parent);
  154.   assert(arglist);
  155.   
  156.   g=GroupObject,
  157.   End;
  158.   w=MakeWidget(parent,g);
  159.   w->core.widget_class=X11_ROWCOLUMN;
  160.   return((Widget)w);
  161. }
  162.  
  163. enum { MEN_PROJECT=1,MEN_ABOUT,MEN_QUIT };
  164.  
  165. struct NewMenu MenuData1[] =
  166. {
  167.   { NM_TITLE, "Project"                  , 0 ,0 ,0             ,(APTR)MEN_PROJECT  },
  168.   { NM_ITEM ,  "About"                   ,"?",0 ,0             ,(APTR)MEN_ABOUT    },
  169.   { NM_ITEM ,  NM_BARLABEL               , 0 ,0 ,0             ,(APTR)0            },
  170.   { NM_ITEM ,  "Quit"                    ,"Q",0 ,0             ,(APTR)MEN_QUIT     },
  171.   { NM_END,NULL,0,0,0,(APTR)0 },
  172. };
  173.  
  174. Widget XmCreateMenuBar (parent, name, arglist, argcount)
  175.      Widget    parent;
  176.      String    name;
  177.      ArgList   arglist;
  178.      Cardinal  argcount;
  179. {/*         File 'xmgr.o'*/
  180.   Widget w;
  181. #ifdef DEBUGXEMUL
  182.   printf("XmCreateMenuBar\n");
  183. #endif
  184. /*
  185.   Object *strip=MUI_MakeObject(MUIO_MenustripNM,MenuData1,0);
  186.   set(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],MUIA_Window_Menustrip,strip);
  187. */
  188.  
  189.   w=MakeWidget(parent,X11menustrip /* strip*/);
  190.   w->core.widget_class=X11_MENUSTRIP;
  191.   return(w);
  192. }
  193.  
  194. Widget XmCreatePulldownMenu (parent, name, arglist, argcount)
  195.      Widget    parent;
  196.      String    name;
  197.      ArgList   arglist;
  198.      Cardinal  argcount;
  199. {/*    File 'xmgr.o'*/
  200. #ifdef DEBUGXEMUL
  201.   printf("XmCreatePulldownMenu\n");
  202. #endif
  203.   Widget w;
  204.   Object *menu=MenuObject,MUIA_Menu_Title,name,End;
  205.  
  206.   DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],MUIM_Family_AddTail,menu);
  207.  
  208. /*
  209.   DoMethod(X11menustrip,MUIM_Family_AddTail,menu);
  210.   */
  211.   w=MakeWidget(parent,menu);
  212.   w->core.widget_class=X11_PULLDOWNMENU;
  213. /*  w->core.window=X11NewMUI(win);*/
  214.   return(w);
  215. }
  216.  
  217. Widget XmCreateLabel (parent, name, arglist, argcount)
  218.      Widget    parent;
  219.      String    name;
  220.      ArgList   arglist;
  221.      Cardinal  argcount;
  222. {
  223.   Widget w;
  224.   Object *t;
  225. #ifdef DEBUGXEMUL
  226.   printf("XmCreateLabel\n");
  227. #endif
  228.  
  229.   assert(parent);
  230.   assert(arglist);
  231.  
  232.   t=TextObject,
  233.     MUIA_Text_Contents,name,
  234.   End,
  235.   w=MakeWidget(parent,t);
  236.   w->core.widget_class=X11_LABEL;
  237.   return(w);
  238. }
  239.  
  240. Widget XmCreateSeparator (parent, name, arglist, argcount)
  241.      Widget    parent;
  242.      String    name;
  243.      ArgList   arglist;
  244.      Cardinal  argcount;
  245.  
  246. {
  247.   Widget w;
  248.   Object *s;
  249. #ifdef DEBUGXEMUL
  250.   printf("XmCreateSeparator\n");
  251. #endif
  252.  
  253.   return 0;
  254.   assert(parent);
  255.   assert(arglist);
  256.  
  257.   if(arg_findarg(arglist,argcount,XmNorientation,XmVERTICAL)) {
  258.     s=RectangleObject, MUIA_Rectangle_HBar, TRUE, MUIA_FixHeight, 8, End;
  259.   } else {
  260.     s=RectangleObject, MUIA_Rectangle_VBar, TRUE, MUIA_FixWidth, 8, End;
  261.   }
  262.   w=MakeWidget(parent,s);
  263.   w->core.widget_class=X11_SEPARATOR;
  264.   return(w);
  265. }
  266.  
  267. Widget XmCreatePushButton (parent, name, arglist, argcount)
  268.      Widget    parent;
  269.      String    name;
  270.      ArgList   arglist;
  271.      Cardinal  argcount;
  272. {/*      File 'motifutils.o'*/
  273.   Widget w;
  274.   Object *b;
  275. #ifdef DEBUGXEMUL
  276.   printf("XmCreatePushButton\n");
  277. #endif
  278.  
  279.   assert(parent);
  280.  
  281.   if(name && strlen(name)==0){
  282.     return 0;
  283.   }
  284.  
  285.   if((XID)parent->core.widget_class==X11_PULLDOWNMENU){
  286.  
  287.     b=MUI_MakeObject(MUIO_Menuitem,name,0,0,0);
  288. /*
  289.     APTR pObject;
  290.     Object *object; 
  291.     struct MinList *pList;
  292.     int i=0;
  293.     get(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],MUIA_Family_List,&pList);
  294.     pObject=pList->mlh_Head;
  295.     while((object=NextObject(&pObject))!=NULL){
  296.       printf("object nr:%d = %d\n",i++,object);
  297.     }
  298. */
  299. /*    if(i)*/
  300.       DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],MUIM_Family_AddTail,b);
  301. /*
  302.     else
  303.       DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],MUIM_Family_AddHead,b);
  304. */
  305.     w=MakeWidget(parent,b);
  306.     w->core.widget_class=X11_MENUSTRIP;
  307.   } else {
  308.     b=SimpleButton(name);
  309.     w=MakeWidget(parent,b);
  310.     w->core.widget_class=X11_BUTTON;
  311.   }
  312.   return(w);
  313. }
  314.  
  315. Widget XmCreateForm (parent, name, arglist, argcount)
  316.      Widget    parent;
  317.      String    name;
  318.      ArgList   arglist;
  319.      Cardinal  argcount;
  320. {/*            File 'xmgr.o'*/
  321.   Widget w;
  322.   Object *f;
  323. #ifdef DEBUGXEMUL
  324.   printf("XmCreateForm\n");
  325. #endif
  326.  
  327.   assert(parent);
  328.   assert(arglist);
  329.  
  330.   f=RectangleObject,
  331.     MUIA_Frame,MUIV_Frame_Group,
  332.   End;
  333.  
  334.   w=MakeWidget(parent,f);
  335.   w->core.widget_class=X11_FORM;
  336.  
  337.   return(w);
  338. }
  339.  
  340. void XmTextShowPosition (widget, position)
  341.      Widget    widget;
  342.      XmTextPosition position;
  343. {
  344.   return;
  345. }
  346.  
  347. void XmScaleSetValue (widget, value)
  348.      Widget    widget;
  349.      int       value;
  350. {
  351.   return;
  352. }
  353.  
  354. Widget XmCreatePromptDialog (parent, name, arglist, argcount)
  355.      Widget    parent;
  356.      String    name;
  357.      ArgList   arglist;
  358.      Cardinal  argcount;
  359. {
  360.   Widget w;
  361.   Object *g=GroupObject,
  362.   End;
  363.   DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],OM_ADDMEMBER,g);
  364.   w=MakeWidget(parent,g);
  365.   w->core.widget_class=X11_PROMPTDIALOG;
  366.   return((Widget)w);
  367. }
  368.  
  369. Widget XmCreateTextField (parent, name, arglist, argcount)
  370.      Widget    parent;
  371.      String    name;
  372.      ArgList   arglist;
  373.      Cardinal  argcount;
  374. {
  375.   Widget w;
  376.   Object *g=GroupObject,
  377.   End;
  378.   w=MakeWidget(parent,g);
  379.   w->core.widget_class=X11_TEXTFIELD;
  380.   return((Widget)w);
  381. }
  382.  
  383. Widget XmSelectionBoxGetChild (widget, child)
  384.      Widget    widget;
  385.      unsigned int child;
  386. {
  387.   return((Widget)NULL);
  388. }
  389.  
  390. Boolean XtIsManaged(object)
  391.      Widget object;
  392. {
  393.   return FALSE;
  394. }
  395.  
  396. void XmTextSetInsertionPosition (widget, position)
  397.      Widget    widget;
  398.      XmTextPosition position;
  399. {
  400. }
  401.  
  402. Widget XmCreateCascadeButton (parent, name, arglist, argcount)
  403.      Widget    parent;
  404.      String    name;
  405.      ArgList   arglist;
  406.      Cardinal  argcount;
  407. {
  408.   Widget w;
  409.  
  410.   if((XID)parent->core.widget_class==X11_PULLDOWNMENU||
  411.      (XID)parent->core.widget_class==X11_MENUSTRIP){
  412.     
  413.     return XmCreatePushButton (parent, name, arglist, argcount);
  414.   } else {
  415.     Object *g=GroupObject,
  416.     End;
  417.     w=MakeWidget(parent,g);
  418.     w->core.widget_class=X11_CASCADEBUTTON;
  419.     return((Widget)w);
  420.   }
  421. }
  422.  
  423. Widget XmCreateDrawingArea (parent, name, arglist, argcount)
  424.      Widget    parent;
  425.      String    name;
  426.      ArgList   arglist;
  427.      Cardinal  argcount;
  428. {
  429.   Widget w;
  430.   Object *g=GroupObject,
  431.   End;
  432.   w=MakeWidget(parent,g);
  433.   w->core.widget_class=X11_DRAWINGAREA;
  434.   return((Widget)w);
  435. }
  436.  
  437. Widget XmCreateText (parent, name, arglist, argcount)
  438.      Widget    parent;
  439.      String    name;
  440.      ArgList   arglist;
  441.      Cardinal  argcount;
  442. {
  443.   Widget w;
  444.   Object *g=GroupObject,
  445.   End;
  446.   w=MakeWidget(parent,g);
  447.   w->core.widget_class=X11_TEXT;
  448.   return((Widget)w);
  449. }
  450.  
  451. Widget XmCreateFormDialog (parent, name, arglist, argcount)
  452.      Widget    parent;
  453.      String    name;
  454.      ArgList   arglist;
  455.      Cardinal  argcount;
  456. {
  457.   Widget w;
  458.   Object *grp,*win;
  459.  
  460.   win=WindowObject,
  461.     MUIA_Window_ID, MAKE_ID( 'F','R','M',0 ),
  462.     MUIA_Window_Title,name,
  463.     Child,grp=GroupObject,
  464.     End,
  465.   End;
  466.   DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],OM_ADDMEMBER,win);
  467.   w=MakeWidget(parent,grp);
  468.   w->core.widget_class=X11_FORMDIALOG;
  469.   w->core.window=X11NewMUI(win);
  470.   return(w);
  471. }
  472.  
  473. Boolean XtIsSensitive(object)
  474.      Widget object;
  475. {
  476.   return FALSE;
  477. }
  478.  
  479. XmTextPosition XmTextGetInsertionPosition (widget)
  480.      Widget    widget;
  481. {
  482.   return (XmTextPosition)NULL;
  483. }
  484.  
  485. Widget XmCreateScale (parent, name, arglist, argcount)
  486.      Widget    parent;
  487.      String    name;
  488.      ArgList   arglist;
  489.      Cardinal  argcount;
  490. {
  491.   Widget w;
  492.   Object *g=GroupObject,
  493.   End;
  494.   w=MakeWidget(parent,g);
  495.   w->core.widget_class=X11_SCALE;
  496.   return((Widget)w);
  497. }
  498.  
  499. void XmScaleGetValue (widget, value_return)
  500.      Widget    widget;
  501.      int       * value_return;
  502. {
  503. }
  504.  
  505. void XmMenuPosition (menu, event)
  506.      Widget         menu;
  507.      XButtonPressedEvent* event;
  508. {
  509. }
  510.  
  511. Widget XmCreateFileSelectionDialog (parent, name, arglist, argcount)
  512.      Widget    parent;
  513.      String    name;
  514.      ArgList   arglist;
  515.      Cardinal  argcount;
  516. {
  517.   Widget w;
  518.   Object *g=GroupObject,
  519.   End;
  520.   DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],OM_ADDMEMBER,g);
  521.   w=MakeWidget(parent,g);
  522.   w->core.widget_class=X11_FILESELECTIONDIALOG;
  523.   return((Widget)w);
  524. }
  525.  
  526. Widget XmCreatePopupMenu (parent, name, arglist, argcount)
  527.      Widget    parent;
  528.      String    name;
  529.      ArgList   arglist;
  530.      Cardinal  argcount;
  531. {
  532.   Widget w;
  533.   Object *g=GroupObject,
  534.   End;
  535.   w=MakeWidget(parent,g);
  536.   w->core.widget_class=X11_POPUPMENU;
  537.   return((Widget)w);
  538. }
  539.  
  540. void XmTextReplace (widget, from_pos, to_pos, value)
  541.      Widget      widget;
  542.      XmTextPosition from_pos;
  543.      XmTextPosition to_pos;
  544.      char        * value;
  545. {
  546. }
  547.  
  548. Widget XmCreateScrollBar (parent, name, arglist, argcount)
  549.      Widget    parent;
  550.      String    name;
  551.      ArgList   arglist;
  552.      Cardinal  argcount;
  553. {
  554.   Widget w;
  555.   Object *g=GroupObject,
  556.   End;
  557.   w=MakeWidget(parent,g);
  558.   w->core.widget_class=X11_SCROLLBAR;
  559.   return((Widget)w);
  560. }
  561.  
  562. Widget XmCreateFileSelectionBox (parent, name, arglist, argcount)
  563.      Widget    parent;
  564.      String    name;
  565.      ArgList   arglist;
  566.      Cardinal  argcount;
  567. {
  568.   Widget w;
  569.   Object *g=GroupObject,
  570.   End;
  571.   DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],OM_ADDMEMBER,g);
  572.   w=MakeWidget(parent,g);
  573.   w->core.widget_class=X11_FILESELECTIONBOX;
  574.   return((Widget)w);
  575. }
  576.  
  577. void XtManageChild(w)
  578.      Widget w;
  579. {/*           File 'xmgr.o'*/
  580. #ifdef DEBUGXEMUL
  581.   printf("XtManageChild\n");
  582. #endif
  583.   Widget parent;
  584.   if(!w) return;
  585.   parent=w->core.parent;
  586.   if( parent && (XID)w->core.widget_class!=X11_MENUSTRIP &&
  587.      (XID)w->core.widget_class!=X11_PULLDOWNMENU){
  588.     DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],OM_ADDMEMBER,
  589.          X11DrawablesMUI[X11DrawablesMap[(XID)w->core.self]]);
  590.     set(X11DrawablesMUI[X11DrawablesMap[(XID)w->core.self]],MUIA_ShowMe,TRUE);
  591.   }
  592. }
  593.  
  594. void XtManageChildren(children, num_children)
  595.      WidgetList children;
  596.      Cardinal num_children;
  597. {/*        File 'fileswin.o'*/
  598. #ifdef DEBUGXEMUL
  599.   printf("XtManageChildren\n");
  600. #endif
  601. }
  602.  
  603. void XtUnmanageChild(w)
  604.      Widget w;
  605. {/*         File 'malerts.o'*/
  606. #ifdef DEBUGXEMUL
  607.   printf("XtUnmanageChild\n");
  608. #endif
  609. }
  610.  
  611. #include <Xm/ToggleB.h>
  612.  
  613. Widget XmCreateToggleButton (parent, name, arglist, argcount)
  614.      Widget    parent;
  615.      String    name;
  616.      ArgList   arglist;
  617.      Cardinal  argcount;
  618. {/*    File 'printwin.o'*/
  619. #ifdef DEBUGXEMUL
  620.   printf("XmCreateToggleButton\n");
  621. #endif
  622.   Widget w;
  623.   if((XID)parent->core.widget_class==X11_PULLDOWNMENU){
  624.     Object *b;
  625.  
  626.     b=MUI_MakeObject(MUIO_Menuitem,name,0,0,0);
  627.     set(b,MUIA_Menuitem_Checkit,TRUE);
  628.     DoMethod(X11DrawablesMUI[X11DrawablesMap[(XID)parent->core.self]],MUIM_Family_AddTail,b);
  629.     w=MakeWidget(parent,b);
  630.     w->core.widget_class=X11_MENUSTRIP;
  631.     return w;
  632.   } else {
  633.     Object *b=TextObject,
  634.       ButtonFrame,
  635.       MUIA_Text_Contents, name,
  636.       MUIA_Text_PreParse, "\33c",
  637.       MUIA_InputMode    , MUIV_InputMode_Toggle,
  638.       MUIA_Background   , MUII_ButtonBack,
  639.     End;
  640.     w=MakeWidget(parent,b);
  641.     w->core.widget_class=X11_TOGGLEBUTTON;
  642.     return((Widget)w);
  643.   }
  644. }
  645.  
  646. #include <Xm/ToggleBG.h>
  647.  
  648. Widget XmCreateToggleButtonGadget (parent, name, arglist, argcount)
  649.      Widget    parent;
  650.      String    name;
  651.      ArgList   arglist;
  652.      Cardinal  argcount;
  653. {/* File 'fileswin.o'*/
  654. #ifdef DEBUGXEMUL
  655.   printf("XmCreateToggleButtonGadget\n");
  656. #endif
  657.   return(0);
  658. }
  659.  
  660. void XtUnrealizeWidget(w)
  661.      Widget w;
  662. {
  663.   return(0);
  664. }
  665.  
  666. Display *XtDisplayOfObject(object)
  667.      Widget object;
  668. {
  669.   return(0);
  670. }
  671.  
  672. XtLanguageProc XtSetLanguageProc(app_context, proc, client_data)
  673.      XtAppContext app_context;
  674.      XtLanguageProc proc;
  675.      XtPointer client_data;
  676. {
  677.   return(0);
  678. }
  679.  
  680. /*
  681. Dimension XmStringHeight (fontlist, string)
  682.      XmFontListfontlist;
  683.      XmString  string;
  684. {
  685.   return 8;
  686. }
  687.  
  688. void XmGetColors (screen, colormap, background, foreground, top_shadow, bottom_shadow, select)
  689.      Screen    * screen;
  690.      Colormap  colormap;
  691.      Pixel     background;
  692.      Pixel     * foreground;
  693.      Pixel     * top_shadow;
  694.      Pixel     * bottom_shadow;
  695.      Pixel     * select;
  696. {
  697. }
  698.  
  699. XmFontListNextEntry()
  700. {
  701. }
  702.  
  703. Widget XmOptionButtonGadget (option_menu)
  704.      Widget    option_menu;
  705. {
  706. }
  707.  
  708. Dimension XmStringWidth (fontlist, string)
  709.      XmFontList fontlist;
  710.      XmString  string;
  711. {
  712. }
  713.  
  714. Widget XtVaAppCreateShell(application_name, application_class,
  715.               widget_class, display, ...)
  716.      String application_name;
  717.      String application_class;
  718.      WidgetClass widget_class;
  719.      Display *display;
  720. {
  721. }
  722.  
  723. Widget XmVaCreateSimplePulldownMenu (parent, name, post_from_button,
  724.                      callback, arg...)
  725.      Widget    parent;
  726.      String    name;
  727.      int       post_from_button;
  728.      XtCallbackProccallback;
  729. {
  730. }
  731.  
  732. Widget XmVaCreateSimpleRadioBox (parent, name, button_set, callback,
  733.                  arg...)
  734.      Widget    parent;
  735.      String    name;
  736.      int       button_set;
  737.      XtCallbackProccallback;
  738. {
  739. }
  740.  
  741. char* XmFontListEntryGetTag (entry)
  742.      XmFontListEntryentry;
  743. {
  744. }
  745. */
  746.  
  747. Boolean XmStringGetLtoR (string, tag, text)
  748.      XmString string;
  749.      XmStringCharSet tag;
  750.      char      **text;
  751. {/*         File 'fileswin.o'*/
  752. #ifdef DEBUGXEMUL
  753.   printf("XmStringGetLtoR\n");
  754. #endif
  755.   if( !text || !string ) return 0;
  756.   if( strstr(text,string) ) return 1;
  757.   return 0;
  758. }
  759.  
  760. XmString XmStringCreateLtoR(char *string,XmStringCharSet charset){/*      File 'xmgr.o'*/
  761. #ifdef DEBUGXEMUL
  762.   printf("XmStringCreateLtoR\n");
  763. #endif
  764.   char *str=malloc(strlen(string)+1);
  765.   if(!str) return 0;
  766.   strcpy(str,string);
  767.   List_AddEntry(pStringList,(void*)str);
  768.   return(str);
  769. }
  770.  
  771. void XmStringFree (string)
  772.      XmString  string;
  773. {/*            File 'xmgr.o'*/
  774. #ifdef DEBUGXEMUL
  775.   printf("XmStringFree\n");
  776. #endif
  777.   List_RemoveEntry(pStringList,(void*)string);
  778.   return(0);
  779.  
  780. }
  781.  
  782. #include <Xm/Xm.h>
  783.  
  784. XmString XmStringCreate (text, tag)
  785.      char      *text;
  786.      char      *tag;
  787. {/*          File 'motifutils.o'*/
  788. #ifdef DEBUGXEMUL
  789.   printf("XmStringCreate\n");
  790. #endif
  791.   
  792.   return XmStringCreateLtoR(text,tag);
  793. }
  794.  
  795. XIconSize *XAllocIconSize()
  796. {/*          File 'magick/libMagick.lib' */
  797.   XIconSize *xis=malloc(sizeof(XIconSize));
  798. #ifdef DEBUGXEMUL
  799.   printf("XAllocIconSize\n");
  800. #endif
  801.   return(xis);
  802. }
  803.  
  804. XSizeHints *XAllocSizeHints()
  805. {/*         File 'magick/libMagick.lib' */
  806.   XSizeHints *xsh=malloc(sizeof(XSizeHints));
  807. #ifdef DEBUGXEMUL
  808.   printf("XAllocSizeHints\n");
  809. #endif
  810.   return(xsh);
  811. }
  812.  
  813. XClassHint *XAllocClassHint()
  814. {/*         File 'animate.o' */
  815.   XClassHint *xch=malloc(sizeof(XClassHint));
  816. #ifdef DEBUGXEMUL
  817.   printf("XAllocClassHint\n");
  818. #endif
  819.   return(xch);
  820. }
  821.  
  822. Widget XmCreateScrolledText (parent, name, arglist, argcount)
  823.      Widget    parent;
  824.      String    name;
  825.      ArgList   arglist;
  826.      Cardinal  argcount;
  827. {/*    File 'monwin.o'*/
  828. #ifdef DEBUGXEMUL
  829.   printf("XmCreateScrolledText\n");
  830. #endif
  831.   Widget w;
  832.   Object *text=ListviewObject,
  833.     MUIA_Listview_Input, FALSE, 
  834.     MUIA_Listview_List, FloattextObject,
  835.       MUIA_Frame, MUIV_Frame_ReadList,
  836.       MUIA_Floattext_Justify,TRUE,
  837.     End,
  838.   End;
  839.  
  840.   w=MakeWidget(parent,text);
  841.   w->core.widget_class=X11_TEXTFIELD;
  842.   return((Widget)w);
  843. }
  844.  
  845. void XmTextSetString(Widget widget,char *value)
  846. {/*         File 'tickwin.o'*/
  847. #ifdef DEBUGXEMUL
  848.   printf("XmTextSetString\n");
  849. #endif
  850.   if(!X11DrawablesMUI[X11DrawablesMap[(XID)widget->core.self]]) return 0;
  851.   set(X11DrawablesMUI[X11DrawablesMap[(XID)widget->core.self]],MUIA_Floattext_Text, value);
  852.   return(0);
  853. }
  854.  
  855. Boolean XmToggleButtonGetState(Widget w){/*  File 'printwin.o'*/
  856.   LONG val;
  857.   Object *obj=X11DrawablesMUI[X11DrawablesMap[(XID)w->core.self]];
  858. #ifdef DEBUGXEMUL
  859.   printf("XmToggleButtonGetState\n");
  860. #endif
  861.   if(!obj) return FALSE;
  862.   get(obj,MUIA_Selected,&val);
  863.   return((int)val);
  864. }
  865.  
  866. Boolean XmToggleButtonGadgetGetState(Widget w){/* File 'drawwin.o'*/
  867. #ifdef DEBUGXEMUL
  868.   printf("XmToggleButtonGadgetGetState\n");
  869. #endif
  870.   return(0);
  871. }
  872.  
  873. void XmToggleButtonGadgetSetState(Widget w,int newstate,int notify)
  874. {/* File 'fileswin.o'*/
  875. #ifdef DEBUGXEMUL
  876.   printf("XmToggleButtonGadgetSetState\n");
  877. #endif
  878.   return(0);
  879. }
  880.  
  881. void XmToggleButtonSetState(Widget w,int newstate,int notify)
  882. {/*  File 'printwin.o'*/
  883.   Object *obj=X11DrawablesMUI[X11DrawablesMap[(XID)w->core.self]];
  884. #ifdef DEBUGXEMUL
  885.   printf("XmToggleButtonSetState\n");
  886. #endif
  887.   if(!obj) return;
  888.   set(obj,MUIA_Selected,newstate);
  889. }
  890.  
  891. Dimension XmStringHeight (fontlist, string)
  892.      XmFontList fontlist;
  893.      XmString  string;
  894. {
  895.   return NULL;
  896. }
  897.  
  898. Dimension XmStringWidth (fontlist, string)
  899.      XmFontList fontlist;
  900.      XmString  string;
  901. {
  902. }
  903.  
  904. void XmGetColors (screen, colormap, background, foreground, top_shadow, bottom_shadow, select)
  905.      Screen    * screen;
  906.      Colormap  colormap;
  907.      Pixel     background;
  908.      Pixel     * foreground;
  909.      Pixel     * top_shadow;
  910.      Pixel     * bottom_shadow;
  911.      Pixel     * select;
  912. {
  913. }
  914.  
  915. XmFontListEntry XmFontListNextEntry (context)
  916.      XmFontContext context;
  917. {
  918. }
  919.  
  920. Widget XmOptionButtonGadget (option_menu)
  921.      Widget    option_menu;
  922. {
  923. }
  924.  
  925. #endif /* XMUIAPP */
  926.